const App = getApp();
const MYJS = require('../../utils/myinit.js');
// 添加到购物车的逻辑
// 记录规格的数组
let goodsSpecArr = [];
const util = require('../../utils/util.js');
// 富文本插件
const wxParse = require("../../wxParse/wxParse.js");
Page({
  data: {
    qaprice:0,
    checkIdsArr:[], //复选框选中的数组
    goodPriceArr:{}, //点击了那个存放那个商品价格，如 goodPriceArr['p_111']=21;
    allPrice:0,

    goods_num: 1, // 商品数量
    goods_sku_id: 0, // 规格id
    goodsMultiSpec: {}, // 多规格信息

    ertypeDiv:false,
    nowtypeid:0,
    nowtypetwoid:0,
    // 一级分类：指针，此指针会根据nowtypeid所变化
    curNav: true, //对应nowtypeid
    curIndex: 0,
    // 二级分类：指针，此指针会根据nowtypeid所变化
    curNav2: true,  //对应nowtypetwoid
    curIndex2: -1, //包含全部按钮，下标从-1开始计算，可以去掉，未用到

    // 搜索框样式
    searchColor: "rgba(0,0,0,0.4)",
    searchSize: "15",
    searchName: "搜索问答知识",

    // 列表高度
    scrollHeight: 0,

    // 分类列表
    list: [],

    // show
    notcont: false,

    // 单个分类下的商品列表参数
    noGoodIsShow:false, //是否存在列表数据提示框显示或隐藏
    showView:true, //列表显示方式，大图和列表显示
    sortType: 'all', // 排序类型
    sortPrice: false, // 价格从低到高
    option: {}, // 当前页面参数
    //goodsList: {}, // 商品列表数据
    goodsList:[], // 商品列表数据2
    no_more: false, // 没有更多数据
    isLoading: true, // 是否正在加载中
    page: 1, // 当前页码
  },
  onLoad(e) {
    var wxapp=wx.getStorageSync('wxapp');
    var _nowtypeid = e.goodtype!=undefined ? e.goodtype : 0
    // _nowtypeid = 2  //测试一级分类
    var _nowtypetwoid = e.goodtype2!=undefined ? e.goodtype2 : 0
    // _nowtypetwoid = 7 //测试二级分类
    this.setData({nowtypeid:_nowtypeid, nowtypetwoid:_nowtypetwoid, qaprice:wxapp['qa_intprice']})
    
    // 首次打开之知识大厅，将选择的试卷id集合清空
    wx.setStorageSync('checkIdsStr', JSON.stringify([]));

    let _this = this;
    // 设置分类列表高度
    _this.setListHeight();
    // 获取分类列表
    _this.getCategoryList();
    // 设置navbar标题、颜色
    App.setNavigationBar();
  },
  onShow(){
    App.pageOnLoad(this);
    // 每次页面返回，重新解析checkbox
    this.formatCheckIds();
    // 购买试卷之后，重新查询未购买的问答试卷
    if(wx.getStorageSync('runQAlist')=='yes'){
      wx.setStorageSync('runQAlist', '');
      this.getGoodList();
    }
  },
  /** 点击选择试题之后的逻辑 */
  checkboxChange(e) {
    var _checkIdsArr = this.data.checkIdsArr
    let noewGoodListArr = this.data.goodsList
    let nowCheckArr = e.detail.value  //每次都会全新改变,随着goodsList的刷新而刷新
    for(let i in noewGoodListArr){
      let qaidStr = noewGoodListArr[i]['bq_id']+"";
      // 先看看此试卷id是否在Ids数组中
      var havaCnt = _checkIdsArr.indexOf(qaidStr);
      // 如果此试卷id在已选中的checkbox数组中
      if(nowCheckArr.indexOf(qaidStr) > -1 ){
          if(havaCnt == -1){  //不重复插入到Ids数值中
            _checkIdsArr.push(qaidStr);
            var _goodPriceArr = this.data.goodPriceArr;
            _goodPriceArr['p_'+qaidStr] = noewGoodListArr[i]['bq_price'];
            this.setData({goodPriceArr:_goodPriceArr});
          }
      }
      // 如果此试卷id不在选中的checkbox数组中，则删除对应的试卷id
      else{
          if(havaCnt > -1){  //如果存在Ids中，则删除
            _checkIdsArr.splice(havaCnt, 1);
          }
      }
    }
    this.setData({checkIdsArr:_checkIdsArr});
    wx.setStorageSync('checkIdsStr', JSON.stringify(_checkIdsArr));
    console.log('选中的值：', e.detail.value, _checkIdsArr);
    this.getAllPrice();
  },
  /** 解析nowcheckIds信息 */
  formatCheckIds(){
    var jsonString = wx.getStorageSync('checkIdsStr');
    if(jsonString){
      var nowCheckIdsArr = JSON.parse(jsonString);
      let noewGoodListArr = this.data.goodsList
      // 清空所有已选择单选按钮
      if(nowCheckIdsArr.length==0){
        for(let i in noewGoodListArr){
          noewGoodListArr[i]['checked'] = false;
        }
      }
      else{
        for(let i in noewGoodListArr){
          let qaidStr = noewGoodListArr[i]['bq_id']+"";
          var ft = nowCheckIdsArr.indexOf(qaidStr)>-1 ? true : false;
          noewGoodListArr[i]['checked'] = ft;
        }
      }
      this.setData({goodsList:noewGoodListArr,checkIdsArr:nowCheckIdsArr});
      this.getAllPrice();
    }
  },
  /** 计算商品总价格 */
  getAllPrice(){
    var jsonString = wx.getStorageSync('checkIdsStr');
    var _goodPriceArr = this.data.goodPriceArr;
    var _allPrice = 0;
    if(jsonString){
      var checkIdsArr = JSON.parse(jsonString);
      if(checkIdsArr.length>0){
        for(let i in checkIdsArr){
          _allPrice += parseInt(_goodPriceArr['p_'+checkIdsArr[i]]);
        }
      }
    }
    this.setData({allPrice:_allPrice});
  },
  /** 提交问答订单 */
  subQaOrder(e){
    var key = e.currentTarget.dataset.key;
    console.log(key);
    wx.navigateTo({
      url: '/pages/studycenter/suborder?key='+key
    });
  },

  /**设置分类列表高度*/
  setListHeight() {
    let _this = this;
    wx.getSystemInfo({
      success: function(res) {
        _this.setData({
          scrollHeight: res.screenHeight - res.statusBarHeight - 134,
        });
      }
    });
  },

  /**  获取分类列表 */
  getCategoryList() {
    let _this = this;
    App._get('askanswer/qaType', {}, result => {
      let data = result.data;
      console.log(data);
      //如果有一级分类值，有传值就用传值，没有就默认第一个
      var _curNav = data.list.length==0 ? true : (_this.data.nowtypeid>0 ? _this.data.nowtypeid : data.list[0].category_id)
      var _curIndex = MYJS.getListCnt(data.list, "category_id", _curNav)
      //如果有二级分类之，有传值就用传值，没有就默认全部
      var _curNav2 = data.list.length==0 ? true : (data.list[_curIndex].child==undefined ? true : _this.data.nowtypetwoid)
      var _curIndex2 = data.list.length==0 ? -1 : (data.list[_curIndex].child==undefined ? -1 : (_this.data.nowtypetwoid==0 ? -1 : MYJS.getListCnt(data.list[_curIndex].child, "category_id", _curNav2)))
    
      _this.setData({
        list: data.list,
        templet: data.templet,
        curNav: _curNav,
        curIndex: _curIndex,
        nowtypeid:_curNav,
        curNav2: _curNav2,
        curIndex2: _curIndex2,
        notcont: !data.list.length
      });
      _this.getGoodList()
    });
  },
  /**  一级分类：选中分类 */
  selectNav(e) {
    let _this = this;
    var _curNav = e.target.dataset.id
    var _curIndex = parseInt(e.target.dataset.index)
    // 二级分类id，与nowtypetwoid一样
    var _curNav2 = _this.data.list.length==0 ? true : (_this.data.list[_curIndex].child==undefined ? true : _this.data.nowtypetwoid)
    // 该二级分类id对应的在数组中的cnt下标号
    var _curIndex2 = _this.data.list.length==0 ? -1 : (_this.data.list[_curIndex].child==undefined ? -1 : (_this.data.nowtypetwoid==0 ? -1 : MYJS.getListCnt(_this.data.list[_curIndex].child, "category_id", _curNav2)))
    
    _this.setData({
      curNav: _curNav,
      curIndex: _curIndex,
      nowtypeid:_curNav,
      // 每次点击1级分类，显示1级全部
      curNav2: 0,
      curIndex2: 0,
      nowtypetwoid:0,
      // curNav2: _curNav2,
      // curIndex2: _curIndex2,
      // nowtypetwoid:_curNav2==true ? 0 : _curNav2,

      ertypeDiv:false,
      scrollTop: 0
    });

    _this.getGoodList()
  },
  //点击选择二级分类
  selectNavTwo(e){
    const _this = this;
    var _curNav2 = e.target.dataset.typetwoid
    var _curIndex2 = _this.data.list.length==0 ? -1 : (_this.data.list[_this.data.curIndex].child==undefined ? -1 : (_this.data.nowtypetwoid==0 ? -1 : MYJS.getListCnt(_this.data.list[_this.data.curIndex].child, "category_id", _curNav2)))

    _this.setData({
      curNav2: _curNav2,
      curIndex2: _curIndex2,
      nowtypetwoid:_curNav2==true ? 0 : _curNav2,
      ertypeDiv:false,
      scrollTop: 0
    });
    _this.getGoodList()
  },
  getGoodList(){
    const _this = this;
    console.log('一级分类指针：',_this.data.curNav,_this.data.curIndex,"二级分类指针：",_this.data.curNav2,_this.data.curIndex2,"***********两种typeid",_this.data.nowtypeid,_this.data.nowtypetwoid)
    this.setData({noGoodIsShow:false, no_more: false, page:1, goodsList:[]});  //取消没有更多了的提示
    this.getGoodsListFun(false, 0)
  },
  /** 设置分享内容 */
  onShareAppMessage() {
    const _this = this;
    return {
      title: _this.data.templet.share_title,
      path: '/pages/studycenter/index?' + App.getShareUrlParams()
    };
  },
  /** 分享到朋友圈 */
  onShareTimeline() {
    const _this = this;
    return {
      title: _this.data.templet.share_title,
      path: '/pages/studycenter/index?' + App.getShareUrlParams()
    };
  },
  onPullDownRefresh() {
    wx.stopPullDownRefresh()//结束刷新
  },
  // 打开关闭二级分类框
  openTwoType(){
    let nowB = this.data.ertypeDiv
    this.setData({ertypeDiv:!nowB})
  },
  // 请求该分类下的商品列表
  getGoodsListFun(isPage, page) {
    // page不传递，则默认第一页
    let _this = this;
    // let nowtypeid = _this.data.nowtypetwoid>0 ? _this.data.nowtypetwoid : _this.data.nowtypeid
    App._get('askanswer/qaboxList', {
      page: page || 1,
      userId: wx.getStorageSync('user_id'),
      type1: _this.data.nowtypeid,
      type2: _this.data.nowtypetwoid,
      search: this.data.option.search || '',
    }, result => {
      let resList = result.data.list,   //接口端传递过来的结果值
        dataList = _this.data.goodsList;
      
      //查找是否已经选择了此试卷，设置checkbox是否选中
      for(let ii in resList){
        if(_this.data.checkIdsArr.indexOf(resList[ii]['bq_id']+"") > -1){
          resList[ii]['checked'] = true;
        }
        else{
          resList[ii]['checked'] = false;
        }
      }

      if (isPage == true) {
        _this.setData({
          goodsList: dataList.concat(resList),
          isLoading: false,
          no_more:false,
          noGoodIsShow:false
        });
      } else {
        _this.setData({
          goodsList: resList,
          isLoading: false,
          no_more:false,
          noGoodIsShow:false
        });
      }
      if(_this.data.page==1 && _this.data.goodsList.length==0){
        this.setData({noGoodIsShow: true});
      }
      if (this.data.page>1 && resList.length==0) {
        this.setData({no_more: true});
      }
    });
  },
  // 下拉加载数据
  bindDownLoad() {
    // 已经是最后一页
    if (this.data.no_more==true) {
      this.setData({ no_more: true });
      return false;
    }
    else{
      // 加载下一页列表
      this.getGoodsListFun(true, ++this.data.page);
    }
  },
  /** 跳转到的试题详情页面 */
  jumpQaInfo(e){
    let qaid = e.currentTarget.dataset.qaid
    if(qaid>0){
      wx.navigateTo({
        url: '/pages/studycenter/allqainfo?qaid=' + qaid
      })
    }
  },
});